import axios from 'axios'

// 创建导出获取城市的函数 getCurrentCity
export const getCurrentCity = () => {
    // 判断localStorage中是否有定位的城市
    const localCity = JSON.parse(localStorage.getItem("hkzf_city"))
    if (!localCity) {
        // 如果没有就请求获取，同时存到localStorage中
        // 利用promise作为getCurrentCity的返回值给其他组件使用获取到的城市信息
        return new Promise((resolve, reject) => {
            const curCity = new window.BMapGL.LocalCity();
            curCity.get(async res => {
                try {
                    const result = await axios.get(`http://localhost:8009/area/info?name=${res.name}`)
                    // this.setState({ currentPosition: res.name })
                    // this.setState({currentPosition:result.data.body.label})
                    // 存到本地
                    localStorage.setItem("hkzf_city", JSON.stringify(result.data.body))
                    resolve(result.data.body)
                } catch (e) {
                    reject(e)
                }
            });
        })
    }
    // 因为上面处理异步时使用了Promise，为了函数返回值的统一所以这里也应该使用Promise
    return Promise.resolve(localCity)
}